
"""
1325. 删除给定值的叶子节点
"""
from typing import Optional

from com.siyuan.TreeNode import TreeNode


class Solution:

    def removeLeafNodes(self, root: Optional[TreeNode], target: int) -> Optional[TreeNode]:
        """
         * 分解二叉树，此题无法使用遍历二叉树
         * 定义：输入一个二叉树的根节点和目标值，删除叶子结点，返回删除叶子结点后的根节点
        """
        if not root:
            return None
        # 前序位置
        root.left = self.removeLeafNodes(root.left, target)
        # 中序位置
        root.right = self.removeLeafNodes(root.right, target)
        # 后序位置
        if not root.left and not root.right and root.val == target:
            return None
        return root

